'                    
'                           4,096 M. 
'                            Ver.2.0
' ,       *********
'                           440 
'-------------------------  ----------------------------------------------

eeprom 0,[" ZHURBA "]   '   EEPROM
eeprom 8,[" MIKHAIL"]
eeprom 16,[" ZERNO- "]
eeprom 24,["  GRAD  "]
eeprom 32,["  2010  "]
eeprom 40,["  JUST  "]
eeprom 48,[" CLOCK  "]
eeprom 56,["4096 MHZ"]

dig1 var porta.0    '     
dig2 var porta.1
dig3 var porta.2
dig4 var porta.3

segments var portb
razryads var porta
dot var portb.7

buttonmin var portb.0
buttonhours var portb.1


init:
    trisa=%10000    '  0-3    ,  4  
    trisb=%00000000 '     
  
  
   
   ' dotblink var byte'    

  
    hours var byte  '  
    minutes var byte   '  
    
    countinter var word   '   
  
    butmin var byte     '   
    buthours var byte    '   
    
    digit var byte      '    
    dotblink var byte   '    
    
    clear   '   
  
    
    intcon=%10100000    '  .    . 
        '     TMR0,   
    option_reg=%00000100    '****( .)   .   
    ' ,   TMR0  
    '   CLOCKOUT.    TMR0. 
    '   1:32    4,096 M  125   
    
run:
    on interrupt goto runinter  '  ,   
    
    if countinter=>7500 then countinter=0:minutes=minutes+1 '  
    if dotblink>125 then dotblink=0 '    
    if minutes>59 then minutes=0:hours=hours+1  '   
    if hours>23 then hours=0    '   

dynamic:    '  
    dig1=1  '   
    digit=hours dig 1   '  digit   hours   ( )
    gosub digsel    '    
    
    dig2=1'   
    digit=hours dig 0'  digit   hours   ( )
    gosub digsel
    
    dig3=1
    digit=minutes dig 1 '     ...
    gosub digsel
    
    dig4=1
    digit=minutes dig 0
    gosub digsel
    
    
buttons:    '   
    trisb=%00000011 '    
    if buttonhours=0 and buttonmin=0 then pause 1000:goto init  '   2  ,   
    button buttonhours,0,100,30,buthours,1,hoursplus    '       .  ,    hoursplus
    button buttonmin,0,100,30,butmin,1,minplus  '       .  ,    minplus
    
    goto outport    '    

digsel: ' 
   lookup digit,[192,249,164,176,153,146,130,216,128,144],segments '       digit       
   if dig2=1 and dotblink<62 then dot=0 '  
   if dig4=1 and countinter>3750 then dot=0 '    ,   
   pause 1  ' 1   
   segments=255 '  
   razryads=0
   return   ' 
   
hoursplus:  '  
    hours=hours+1
    goto outport
    
minplus:'  
    minutes=minutes+1
    goto outport
    
outport:    '    
    trisb=0
    goto run
   
runinter:   '  
    disable
    countinter=countinter+1
    dotblink=dotblink+1
    intcon=%10100000    '    TMR0. ( 2)
    enable
    resume
    
